Conventionally known have been server virtualization technologies of operating a virtual server called a virtual machine (VM) on a physical server of an information processing apparatus or the like. The physical server operates software called a virtual machine monitor (VMM) or the like that executes various controls relating to the VM, such as generation of the VM. In general, an operating system (OS) operating on the VM is called a guest OS.
Known examples of the VMM include hypervisors. The hypervisors are classified into monolithic hypervisors and microkernel hypervisors.
The monolithic hypervisor has a configuration in which a device driver is implemented on a hypervisor layer. The monolithic hypervisor executes the device driver, executes processing equivalent to a layer 2 switch, and so on. The monolithic hypervisor can, therefore, process communication between the guest OSs at high speed in some cases but may cause the communication to be unstable.
The microkernel hypervisor has a configuration in which a management OS having special authority different from that of the guest OS is implemented in addition to the hypervisor layer. The management OS is one guest OS operating on the VM and manages the device driver. The microkernel hypervisor, therefore, processes input/output (I/O) generated on a guest OS through the device driver that is managed by the management OS.
Patent Literature 1: Japanese Laid-open Patent Publication No. 2007-109040
Patent Literature 2: Japanese Laid-open Patent Publication No. 2007-193429
The conventional technique, however, has a problem that communication between the guest OSs is not made at high speed.
For example, when the microkernel hypervisor is employed, bridge processing with the management OS is performed in order to execute communication between the guest OSs. This leads to waiting for switching of a context of the management OS and generates overhead, resulting in increased time taken for the communication between the guest OSs.